#ifndef _SHELL_H_
#define _SHELL_H_

#include "xos.h"

#define SHELL_CMD       1

void Shell_Init(void);
void Shell_Proc(void);

struct Shell_Cmd
{
    uint8_t *name;
    void *entry;
    uint8_t *dec;
};


extern code struct Shell_Cmd shell_cmd_list[];

#define SHELL_CMD_LIST_LEN  (sizeof(shell_cmd_list)/sizeof(struct Shell_Cmd))



extern code uint8_t cmd_demo_name[];
extern code uint8_t cmd_demo_dec[];
void cmd_demo_func(uint8_t argc, uint8_t xdata *xdata *argv);
#define CMD_DEMO_ENTRY  {cmd_demo_name, cmd_demo_func, cmd_demo_dec}

extern code uint8_t cmd_help_name[];
extern code uint8_t cmd_help_dec[];
void cmd_help_func(uint8_t argc, uint8_t xdata *xdata *argv);
#define CMD_HELP_ENTRY  {cmd_help_name, cmd_help_func, cmd_help_dec}



#endif // _SHELL_H_
